Date: Wed, 20 Nov 1996 19:05:46 GMT
Server: NCSA/1.5
Content-type: text/html
Last-modified: Sun, 18 Aug 1996  4:12:54 GMT


<html>
<head>
  <title>
    The Church Project:
    A Functional Programming Language Using Intersection Types 
  </title>
  <meta name="keywords"
        content="Church Project, intersection types, ML, type-based,
                 compiler, compiling, functional programming language">
  <meta name="description"
        content="A Boston-based project for an ML-like functional
                 programming language.  The input currently uses rank-2
                 intersection types, while the typed intermediate language
                 has intersection, union, product, sum, and recursive
                 types.">
</head>
<body>

<h1>
  The Church Project:<br>
  <nobr>
    A Functional Programming Language Using Intersection Types
  </nobr>
</h1> 

The Church Project is a Boston-based project designing and implementing an
ML-like functional programming language.  The input language is currently
based on rank-2 intersection types while the typed intermediate language
has intersection, union, product, sum, and recursive types.

<h2>Overview of Language</h2>

Intersection types are the basis of the type system for the proposed
functional language.  It is a matter of research how to limit and adjust
intersection types to fit implementation needs.  The polymorphism provided
by intersection types is different from universal-quantifier polymorphism
(ML-like languages typically use a restriction of the latter).

<p>

A particular restriction of intersection types (those of "rank 2") has
been shown to be flexible enough to provide elegant solutions for several
well-known problems caused by universal-quantifier polymorphism in ML-like
languages.  We have started the implementation of a core language where
the input uses type inference for rank-2 intersection types.  Our hope is
that this flexibility will be further demonstrated as we add new features
to the core language.

<h2>Pointers to Resources</h2>

<ul>
  <li><!WA0><a href="http://www.cs.bu.edu/groups/church/seminar-schedule.html">The seminar schedule</a>.</li>
  <li><!WA1><a href="http://www.cs.bu.edu/groups/church/reports/">Technical reports</a>.</li>
  <li><!WA2><a href="http://www.cs.bu.edu/groups/church/bibliography/">A bibliography</a>.</li>
</ul>

<h2>Project Organization</h2>

The project is organized into a weekly seminar, design meetings, and an
implementation effort:

<ul>
  <li>
    The seminar is implementation-driven.
    Project members summarize research reports from the literature which
    are directly relevant to the implementation.
    <!WA3><a href="http://www.cs.bu.edu/~jbw">Joe Wells</a> coordinates the
    seminar. 
  </li>
  <li>
    A compiler for the Church language is being implemented in Standard ML
    of New Jersey on the computers of the Boston University Computer
    Science Department.
    <!WA4><a href="http://www.cs.bc.edu/~muller/">Bob Muller</a> coordinates the
    implementation.
  </li>
  <li>
    Sometimes the seminar time is used as a working meeting and sometimes
    working meetings are scheduled at other times.
  </li>
</ul>

<h2>Project Participation</h2>

The Church Project is based in Boston and has active participants from
Boston University, Boston College, Harvard University, and Wellesley
College.  New participants with time to work on the project and attend the
seminar are welcome.  For more information, send e-mail to
<!WA5><a href="mailto:muller@cs.bc.edu">Bob Muller</a>
or
<!WA6><a href="mailto:jbw@cs.bu.edu">Joe Wells</a>.

<h2>The Project Name</h2>

The Church Project is named in memory of <!WA7><a
href="http://www.cs.bu.edu/groups/church/alonzo-church.html">Alonzo Church</a>, who died in the month the
project began.

</body>
</html>
